home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / text / edit / BareED.lha / BareED / DAC / source / bareed_dac.h next >
C/C++ Source or Header  |  2001-03-17  |  6KB  |  167 lines

  1. #ifndef BAREED_DAC_H
  2.     #define BAREED_DAC_H
  3. /*
  4.     BAREED_DAC
  5.  
  6.     (C) Copyright 2001 J.v.d.Loo
  7.  
  8.     Any declared pointer (below) is only readable because it points to a BareED intern variable!
  9.     Never change it!!!
  10.  
  11.     Any DAC-application can be compiled for a 68020 CPU since BareED itself presupposes it!    
  12. */
  13.  
  14. #ifndef EXEC_LIBARIES_H
  15.     #include <exec/libraries.h>
  16. #endif
  17.  
  18. #ifndef GRAPHICS_GFXBASE_H
  19.     #include <graphics/gfxbase.h>
  20. #endif
  21.  
  22. #ifndef INTUITION_INTUITIONBASE_H
  23.     #include <intuition/intuitionbase.h>
  24. #endif
  25.  
  26. #ifndef INTUITION_SCREENS_H
  27.     #include <intuition/screens.h>
  28. #endif
  29.  
  30. #ifndef WORKBENCH_STARTUP_H
  31.     #include <workbench/startup.h>
  32. #endif
  33.  
  34.  
  35. /* Returned by "pm_CreateProgressBar()" - see below.
  36.    Don't assume anything about the ProgressBar more than here stated -
  37.    in real it has got much more items!
  38. */
  39. struct ProgressBar
  40. {
  41.     struct Window *pb_Window;
  42. };
  43.  
  44.  
  45. struct PseudoMsg
  46. {
  47.     /* Normal start-up-message, with one argument (path & filename)
  48.        ln_Name points to "BAREED"
  49.        ln_Pri set to zero (= version of this structure - 0 means beta)
  50.     */
  51.     struct WBStartup      pm_Startup;
  52.  
  53.     /* Following is private, do not read or modify! */
  54.     BPTR                 pm_Lock;
  55.     unsigned char        *pm_Name;
  56.     unsigned char         pm_FileName[108];
  57.     unsigned char         pm_Dir[256];
  58.  
  59.     /* Library bases (assume at least all are v36, except: Asl v38, Icon & Diskfont v33, Locale v1) */
  60.     struct GfxBase        *pm_GfxBase;
  61.     struct IntuitionBase *pm_IntuitionBase;
  62.     struct Library        *pm_GadToolsBase;
  63.     struct Library        *pm_DiskfontBase;
  64.     struct Library        *pm_AslBase;
  65.     struct Library        *pm_IconBase;
  66.     struct Library        *pm_LocaleBase;
  67.     struct Library        *pm_WorkbenchBase;
  68.  
  69.     /* If you have to do own rendering using GadTools, these two may help you.
  70.        But beware of releasing them - BareED is the owner!
  71.     */
  72.     void                *VisualInfo;            /* Never release it! */
  73.     struct DrawInfo        *DrawInfo;                /* Never release it! */
  74.  
  75.     /* Storage (buffer) start and size */
  76.     unsigned char        *pm_RegionStart;
  77.     unsigned int         pm_RegionSize;
  78.  
  79.     /* Archive start and end */
  80.     unsigned char        *pm_TextStart;
  81.     unsigned char        *pm_TextEnd;
  82.  
  83.     /* Application was started with this marked block */
  84.     unsigned char        *pm_BlockStart;
  85.     unsigned char        *pm_BlockEnd;
  86.  
  87.     /* Editor is using this attribute for the used font */
  88.     struct TextAttr        *pm_FontAttr;
  89.  
  90.     /* By editor used font */
  91.     struct TextFont        *pm_Font;
  92.  
  93.     /* The editor's surrounding */
  94.     struct Window        *pm_EdWindow;
  95.  
  96.     /* How wide is a tab character in pixels */
  97.     unsigned int         pm_TabWidth;
  98.  
  99.     /* A tab stop occurs every 'n' characters (almost!) */
  100.     unsigned int         pm_TabStops;
  101.  
  102.     /* Rightmost offset set to 'n' characters (may zero!!!) */
  103.     unsigned int         pm_RightMargin;
  104.  
  105.     /* Pointer to 256 bytes - same order like LATIN-1 char-set - where each byte holds
  106.        the width of the concerned character, e. g. at offset 32 the width of the SPACE-
  107.        character can be found
  108.     */
  109.     unsigned char        *pm_CharSpace;            /* Pointer to the character-spaces of the used font */
  110.  
  111.     /* Currently, following two function pointers are out of order (they are empty!!!)
  112.        To check if the current BareED version support those two, check them against zero!
  113.     */
  114.     void                (*pm_GetAttr)( struct TagItem *taglist);
  115.     void                (*pm_ChangeAttr)( struct TagItem *taglist);
  116.  
  117.     /* Two functions to permit/allow modifications through user-interface --- NOTE:
  118.        Since BareED protects the archive against modification (user/Arexx) there is no need to
  119.        call these functions - furthermore - even if you call AllowInput() it will not turn off
  120.        the protection - it only allows the user to scroll around in the text-file (for example)
  121.        which is anyway the defaulted mode!
  122.     */
  123.     void                (*pm_BlockInput)( void);
  124.     void                (*pm_AllowInput)( void);
  125.  
  126.     /* Display a simple text-requester whithout inhibiting the user from changing BareED's
  127.        interface. You could call BlockInput() first...
  128.     */
  129.     void                (*pm_Tell)( STRPTR str);
  130.  
  131.  
  132.     /* Display a simple text-requester without inhibiting the user from changing BareED's
  133.        interface. The user can react on the requester with "YES" or "NO".
  134.     */
  135.     unsigned int        (*pm_CaseTell)( STRPTR str);
  136.  
  137.     /* Display a simple number-requester with inhibiting the user from changing BareED's
  138.        interface!
  139.         initial     = intial number for the string-gadget that may be changed by the user later on
  140.         winname  = title of the requester
  141.         hailtext = the text displayed as body
  142.         gadtext  = there is only one bool-gadget in this requester, this is the string for it
  143.         zero     = must be set to zero!
  144.        Returns NULL if user abandoned or the entered number
  145.     */
  146.     unsigned int        (*pm_RequestNumber)( unsigned int initial, STRPTR winname, STRPTR hailtext, STRPTR gadtext, BOOL zero);
  147.  
  148.     /* Four functions - please refere to the DAC-guide for function-reference */
  149.     unsigned int        (*pm_StrPixelLen)( unsigned char *start, unsigned char *end);
  150.     void                (*pm_DumpStrLine)( unsigned char *start, unsigned char *end, struct RastPort *rp, unsigned int x, unsigned int y);
  151.     unsigned int        (*pm_WidestStrLen)( unsigned char *text, unsigned char *stop, unsigned int (*inform_code)( unsigned int len, unsigned int line), unsigned int inform);
  152.     void                (*pm_DumpStrings)( struct RastPort *rp, unsigned int (*dump_code)( unsigned int len, unsigned int line), unsigned char *text, unsigned char *stop);
  153.  
  154.     /* Functions attached to the progress-bar - refere to DAC-guide... */
  155.     void                (*pm_FreeProgressBar)( struct ProgressBar *pb);
  156.     struct ProgressBar *(*pm_CreateProgressBar)( STRPTR wintitle, STRPTR hail, STRPTR stop, STRPTR cont, STRPTR cancel);
  157.     unsigned int        (*pm_PullPBarEvent)( struct ProgressBar *pb);
  158.     void                (*pm_ChangePBarIndicator)( struct ProgressBar *pb, unsigned int percent, STRPTR hail);
  159.  
  160.     /* <<< Following does not work properly yet - so don't use! >>>
  161.     */
  162.     void                (*pm_TogglePBarGad)( struct ProgressBar *pb);
  163.  
  164. };
  165.  
  166. #endif
  167.